Recently, grid computing (to be also simply referred to as “grid” hereinafter) which makes it possible to use a plurality of computers connected via a network as if they formed one system has attracted a great deal of attention. Applications of grid computing to various fields are attempted. For example, applications of grid computing are laid open to the public in an IBM professional's paper “Adaptability of grid computing to commercial systems”<URL: http://www6.ibm.com/jp/provision/no36/pdf/36_ppr1.pdf>.
FIG. 1 is a block diagram for explaining the architecture of grid computing. Although several types of grids are proposed, a so-called desktop grid which executes a job by using the idle time of the CPU of a desktop PC or the like will be described below.
In FIG. 1, a client 10 is a device for inputting a job as a request from the user. The input job is transferred to a task manager (to be simply referred to as a TM hereinafter) 20, and the TM 20 notifies a dynamic job scheduler (to be simply referred to as a DJS hereinafter) 30 of the contents of the job.
The DJS 30 manages the resources of host devices 41 to 43 each of which includes a broker 411 and a resource manager (to be referred to as an RM hereinafter) 412 and is recognized as a resource. The DJS 30 analyzes a job, selects the broker 411 of an optimal resource, and notifies the TM 20 of it. Note that the resource means the idle state of a CPU available in each host device.
The broker 411 registers resource information acquired by the RM 412 in the DJS 30, inputs a job to an optimal resource in accordance with a request from the TM 20, and notifies the TM 20 of the completion of the job at the end of the job.
The TM 20 inputs a job to an optimal broker 411 selected by the DJS 30, monitors the subsequent progress of the job, and when receiving a completion notification from the broker 411, notifies the client 10 of the result. If the resource changes or any problem occurs (for example, a failure or another job is accepted), the RM 412 notifies the broker 411 of this.
This mechanism implements the desktop grid by generally distributing a job to an idle resource such as a CPU and enabling distributed processing between a plurality of host devices while the user is not aware of it.
A configuration when this technique is applied to PDL processing in an image processing apparatus will be explained with reference to FIG. 2. In the description of FIG. 1, modules (DJS, broker, resource manager, and the like) which form the grid are distributed and exist in separate devices. When the gird is applied to a printing apparatus, a plurality of modules generally exist in one device.
FIG. 2 is a block diagram showing a configuration when grid computing is applied to PDL processing (expansion processing of a page description language into a raster image) in a printer. In the example shown in FIG. 1, modules which form the grid are treated as separate modules. When the gird is applied to an image forming apparatus such as a multi-function printer (MFP) or printer, a plurality of modules generally exist in one device.
In the configuration of FIG. 2, the user inputs a job such as a printing instruction from a client PC 110. The input job is analyzed by an image forming apparatus 120 (e.g., a printer) having the TM and DJS functions. Divided jobs as a result of the analysis are distributedly processed by grid computing using the resources of three PCs, i.e., PC 1 (141), PC 2 (142), and PC 3 (143) each having the broker and RM.
In the configuration shown in FIG. 2, the image forming apparatus 120 also functions as a host in grid computing. Needless to say, a PC other than the image forming apparatus 120 may function as a host.
When a PDL printing job is input from the client PC 110, the job is properly distributed and allocated to the resources of the PC 141 to 143 via the TM and DJS of the image forming apparatus 120. At the same time, an application program for expanding a PDL image is also transmitted from the image forming apparatus 120 to each PC.
Images formed by expanding the PDL in the respective PCs are transmitted to the image forming apparatus 120, collected, combined, and finally output from the image forming apparatus 120.
Note that the number of hosts subjected to distributed processing is not particularly limited, and may be three or more. A job may also be distributed and allocated to the resources of the client PC 110 and image forming apparatus 120.
Studies have been conducted to collect computer resources and implement high-speed processing using the grid computing technique. However, this technique is rarely applied to an embedded device.
When distributed processing to resources is to be performed, a system is constructed which includes a management node for requesting distributed processing of a job, and one or more processing nodes for receiving data of the requested distributed processing performing the processing, and sending back the results.
In general, the system is built on the assumption that all processing results obtained at a plurality of processing nodes are correct. When the computer resources of PCs or the like are used, the CPUs and OSs are often identical to each other, and processing results obtained from the processing nodes often coincide with each other.
However, in a distributed processing system using the resources (e.g., a CPU and image processing ASIC) of an embedded device such as the MFP, an environment where various types of MEPs coexist is assumed, and hardware resources (e.g., CPUs or image processing ASICS) used may be different between models.
As for software in addition to hardware resources, the numerical operation library, image processing operation module, or the like may be different in version.
If distributed processing is done using MEPs of different types, the processing result may change depending on the processing node. This decreases the reliability of the distributed processing result.
For example, a case wherein PDL processing is divided into pages and objects and distributedly executed will be examined. At this time, if the resolution of color processing is different between a given processing node and another processing node, the tint of pages processed by the given processing node may change, or the tint of objects in pages processed by the given processing node may become different from that of other objects. As a result, the image quality of the processing result decreases, and the reliability of the distributed processing system is impaired.
Even if processing nodes are different in model or the version of software or hardware, they may be designed with a common platform. In some cases, even different models provide the same processing result, or the difference does not influence the processing results of distributed processing. It is difficult to determine, on the basis of simply the model name or the version of software or hardware, whether processing results are different. If a processing node is selected as a distributed processing request destination on the basis of these pieces of information, the number of processing nodes subjected to distributed processing decreases, and the efficiency of the distributed processing system decreases.
Also when a processing node at which information is tampered or data degrades exists among processing nodes in the distributed processing system using the CPU resources of PCs, the reliability of the distributed processing system is impaired.